/***************************************************************************
 *
 * Copyright (c) 2013 Baidu, Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 **************************************************************************/
// Author: Wen Xiang <bigflow-opensource@baidu.com>
//
// An implemention of Dataset.

#ifndef FLUME_RUNTIME_COMMON_MEMORY_DATASET_H_
#define FLUME_RUNTIME_COMMON_MEMORY_DATASET_H_

#include <string>

#include "flume/runtime/dataset.h"

#include "boost/ptr_container/ptr_vector.hpp"
#include "toft/base/scoped_ptr.h"

namespace baidu {
namespace flume {
namespace runtime {

// TODO(wenxiang): MemoryDatasetManager is behaved like a buffer manager. It should be
// implemeted as a cache manager.
class MemoryDatasetManager : public DatasetManager {
public:
    MemoryDatasetManager();
    virtual ~MemoryDatasetManager();

    virtual Dataset* GetDataset(const std::string& identity);
};

}  // namespace runtime
}  // namespace flume
}  // namespace baidu

#endif  // FLUME_RUNTIME_COMMON_MEMORY_DATASET_H_
